<script setup lang="ts">
const props = defineProps({
  bgColor: {
    type: String,
    default: '#ffffff',
  },
})
const style = computed(() => {
  const val: any = {}
  // 状态栏高度，由于某些安卓和微信开发工具无法识别css的顶部状态栏变量，所以使用js获取的方式
  val.height = `${uni.getSystemInfoSync().statusBarHeight}px`
  if (props.bgColor) {
    if (props.bgColor.includes('gradient')) {
      // 渐变色
      val.backgroundImage = props.bgColor
    } else {
      val.background = props.bgColor
    }
  }
  return val
})
</script>

<template>
  <view :style="[style]" class="uv-status-bar">
    <slot />
  </view>
</template>

<style lang="scss" scoped>
.uv-status-bar {
  // nvue会默认100%，如果nvue下，显式写100%的话，会导致宽度不为100%而异常
  /* #ifndef APP-NVUE */
  width: 100%;
  /* #endif */
}
</style>
